package corrida.lista;

public class ThreadLista implements Runnable {

	private No anterior;
	private int contadorLista = 0;

	public ThreadLista() {

		anterior = new No(null);
	}

	@Override
	public void run() {

//		No atual = anterior.getNext();
//		while (atual != null) {
//			System.out.println(atual.getValor());
//			atual = atual.getNext();
//		}
		
		int i,j;
		String temp = "";
		No atual = anterior.getNext();
		String a = atual.getValor();
		String b = null;
		
		for(i = 1; i <= contadorLista; i++){
			for (j = 1; j <= i; j++) {
				if(atual.getNext() != null){
					atual = atual.getNext();
					b =  atual.getValor();
					if(a.compareToIgnoreCase(b) < 0){
						temp = a;
						a = b;
						b = temp;
					}
				}
			}
			System.out.println(b);
		}
		
		//insertSort();
	}

	public int getContadorLista() {
		return contadorLista;
	}

	public void setContadorLista(int contadorLista) {
		this.contadorLista = contadorLista;
	}

	public void add(String valor) {
		No temp = new No(valor);
		No atual = anterior;
		while (atual.getNext() != null) {
			atual = atual.getNext();
		}
		atual.setNext(temp);
		contadorLista++;
	}
	
	public void insertSort() {
		// Cria uma nova lista
		No atual = anterior.getNext();
		ThreadLista novaLista = new ThreadLista();
		for (int x = 1; x < contadorLista; x++) {
			int y = x;
			String maior = atual.getNext().getValor();
			System.out.println("Y" + y);
			System.out.println("Com" + atual.getValor().compareToIgnoreCase(maior));
			while ((y>0)&& (atual.getValor().compareToIgnoreCase(maior)>0)){
				atual = anterior;
				y--;		
			}
			atual.setValor(maior);
		}
	}

	/*
	 * public ThreadLista insertSort(){ System.out.println(anterior.getValor());
	 * int i,j; ThreadLista lista = new ThreadLista(); for (i = 0; i <
	 * contadorLista; i++) { No temp = anterior; No atual = anterior.getNext();
	 * j = i; while (j > 0 &&
	 * temp.getValor().compareToIgnoreCase(atual.getValor()) > 1) {
	 * 
	 * lista.add(temp.getValor()); } temp = atual.getNext(); } return lista; }
	 */
	//
	// public ThreadLista insertSort(){
	//
	// No atual = anterior.getNext();
	// while(atual != null){
	// System.out.println(atual.getValor());
	// atual = atual.getNext();
	// }
	//
	// int i,j;
	// ThreadLista lista = new ThreadLista();
	// for (i = 0; i < contadorLista; i++) {
	// No temp = anterior;
	// No atual = anterior.getNext();
	// j = i;
	// while (j > 0 && temp.getValor().compareToIgnoreCase(atual.getValor()) >
	// 1) {
	//
	// lista.add(temp.getValor());
	// }
	// temp = atual.getNext();
	// }
	// return lista;
	// }

}
